I) MAIZE ROOT BACTERIA

Load metadata: Metadata strains with plate layout (indicating which strain is in which well) and database with taxonomic information about the strains.

Load growth data: Growth data from the plates.

Formatting:Data from the different runs are merged, then the time intervals between the measurements are calculated and last then the results are joined with the strain metadata of the strains. Next the density increase is calculated by subtracting the first measurement (represents inoculation density) from all subsequent measurements. This result data file is saved as raw results.

Growth curves

First the density increase in the medium control plate is plotted to check that there was no general contamination detected in the experiment.

Next the growth of all strains in the control treatment and the no bacteria control is checked.

Here the growth of two bacterial strains in one run in 6 concnetrations of MBOA and the control treatment are plotted. Pseudomonas LPD2 is MBOA-tolerant whil LRH8.O is MBOA susceptible.

Remove strains from the analysis: For some strains bad growth was detected in the growth curve which are removed due to bad growth, possible contamination, unclear taxonomy and antibiotic tolerant strains.

Calculate area under the curve (AUC)

To quantify the total bacterial growth over time, we calculate the total area under the curve. This is done with the function “auc()” For comparison between treatments, the total AUC (AUC_raw) is normalized with the AUC of the strain grown in the control treatment (no chemicals added, just normal growth media with DMSO). The AUC_norm is used for all further analysis, plotting and calculations.

Plotting AUC

Figures for supplement

All AUC MBOA

AUC tolerant and susceptible strain in MBOA

All AUC BOA

All AUC AMPO

All AUC APO

All AUC DIMBOA-Glc

Compare concentrations and chemicals

MBOA and AMPO at 50 μM: Compare low MBOA concentrations with high AMPO concentrations [50 uM]

To investigate how many strains are susceptible to low concentrations of MBOA and AMPO (50 μM). We check for the number of strains with AUC_norm < 0.8 and statistically test (t.test) which bacteria grow significantly less in the treatment compared to the control.

MBOA 50 μM
Strain
LWO6
MBOA 50 μM
Strain
LST15
LWO6
AMPO 50 μM
Strain
LAC11
LBA112
LBA20
LMB2
LMD1
LME1
LME3
LMI1
LMI11
LMI13
LMJ1
LML1
LMO1
LMS1
LMX3
LMX9231
LMY1
LMZ1
LPA2
LPB4.O
LPE13
LRH11
LSP13
LWO6
AMPO 50 μM
Strain
LAR21
LBA1
LBA112
LBA20
LBA21
LBA3
LBA71
LMA1
LMB2
LMC3
LMD1
LME1
LME2
LMI1
LMI11
LMI13
LMI15
LMI1x
LMJ1
LML1
LMN1
LMO1
LMS1
LMX3
LMX7
LPA2
LRH11
LRH8.O
LSP13
LST14
LWO6

MBOA and BOA 2500 50 μM

To investigate how many strains are susceptible to high concentrations of MBOA and BOA (2500 μM). We check for the number of strains with AUC_norm < 0.75 and statistically test (t.test) which bacteria grow significantly less in the treatment compared to the control.

MBOA 2500 μM
Strain
LBA1
LBA3
LBA71
LMB2
LME1
LME2
LMI11
LMJ1
LMX9
LMY1
LPB4.O
LPD11
LPD2
LPE13

AMPO and APO [50 uM]

Tolerance index

To compare the tolerance among different bacterial strains, we use the tolerance index (TI). This tolerance index is calculated from the area under the curve of the AUC of each strain in the different concentrations of the compounds, as further normalization the normalized tolerance index is calculated from AUC_norm instead of AUC. Accordingly, a strain with TI_norm = 1 is completely tolerant to the compound in each concentration (not inhibited by the compound). Tolerance index is calculated for each compound separately using results_AUC from the respective compound.

TI MBOA

Tolerance index of tolerant and susceptible strain in MBOA

TI MBOA without high concentrations

TI MBOA at two concentrations (500 and 2500 μM)

AUC MBOA 625 μM

TI BOA

TI AMPO

AUC DIMBOA-Glc 2500 uM

TI DIMBOA-Glc

correlation TI with TI low

TI APO

p-value heatmaps

p-value APO

Correlation tolerance index

To investigate if the tolerance of maize root bacteria to different benzoxazinonids and aminophenoxazinones depend on each other, we correlated the TIs of all bacteria in the different chemicals with each other.

MBOA ~ AMPO

MBOA ~ BOA

APO ~ AMPO

BOA ~ APO

MBOA ~ DIMBOA-Glc

Tolerance groups

MBOA_type MBOA BOA_type BOA AMPO_type AMPO APO_type APO
intermediate 18 intermediate 30 intermediate 4 intermediate 7
susceptible 22 susceptible 6 susceptible 4 susceptible 9
tolerant 12 tolerant 16 tolerant 44 tolerant 36
Compound p.value
MBOA 0.00010910830639201
BOA 2.5851643475067e-05
AMPO 0.0559324299277804
APO 0.00723728836215448

Effect of gram on tolerance

II) ATSPHERE BACTERIA

Load metadata: Metadata strains with plate layout (indicating which strain is in which well) and database with taxonomic information about the strains.

Load growth data: Growth data from the plates.

Calculate density increase: substract initial density from density of each time point

Growth curves

First the density increase in the medium control plate is plotted to check that there was no general contamination detected in the experiment.

Next the growth of all strains in the control treatment and the no bacteria control is checked.

Growth of individual strains in different concentrations of MBOA.

Some strains did not grew and were therefore excluded from the analysis. In both runs: Root1294 Sphigomonas, Root420 Flavobacterium, Root482 Rhizobium, Root559 Lysobacter, Root630 Pseudoxanthomonas, in run 1: Root318D1 Variovorax, in run 2: Root166 Microbacterium.

Calculate area under the curve

To quantify the total bacterial growth over time, we calculate the total area under the curve. This is done with the function “auc()” For comparison between treatments, the total AUC (AUC_raw) is normalized with the AUC of the strain grown in the control treatment (no chemicals added, just normal growth media with DMSO). The AUC_norm is used for all further analysis, plotting and calculations.

Plotting AUC

Tolerance index

To compare the tolerance among different bacterial strains, we use the tolerance index. The tolerance index is calculated from the area under the curve of the AUC of each strain in the different concentrations of the compounds, as further normalization the tolerance index is calculated from AUC_norm instead of AUC. Accordingly, a strain with TI_norm = 1 is completely tolerant to the compound in each concentration (not inhibited by the compound). Tolerance index is calculated for each compound separately using results_AUC from the respective compound.

p-value heatmaps

Effect of gram on tolerance

Tolerance groups

fisher exact

Compound p.value
MBOA 0.237658243023882

Correlation TI norm MBOA MRB ~ AtSphere families

Compare families MRB ~ AtSphere

III) MICROBIOME DATA

We mapped the 16s rRNA sequences to the microbiome dataset published by Hu et al. 2018. In this study, maize wild-type plants (producing BXs) were grown along with bx1 mutant plants in the field. Then the plants were harvested and the root, the rhizosphere and the soil compartment were sequenced. The bacterial community profiles of wild-type and bx1 mutant plants differed significantely. We found that most of the MRB isolates map to taxonomic units (OTUs) in the dataset and many of them map to abundant OTUs. Here we investigate the BX-dependent colonization of these OTUs in the microbiome dataset and correlate those with the tolerance index of the strains.

In this graph the log2foldchange of OTUs on WT/bx1 roots in the field is visualized.

Stats was done like this: iso_abundance_single_data_long %>% group_by(OTU, compartment) %>% do(tidy(t.test(Abundance~genotype, data=.))) %>% add_significance(“p.value”) %>% dplyr::select(OTU, p.value, p.value.signif)

Correlation with tolerance data

MBOA root

MBOA rhizosphere

BOA

AMPO

APO

DIMBOA-Glc

DIMBOA-Glc

Corplot log2FC field

sessionInfo()
## R version 4.3.1 (2023-06-16 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 11 x64 (build 22621)
## 
## Matrix products: default
## 
## 
## locale:
## [1] LC_COLLATE=English_Switzerland.utf8  LC_CTYPE=English_Switzerland.utf8   
## [3] LC_MONETARY=English_Switzerland.utf8 LC_NUMERIC=C                        
## [5] LC_TIME=English_Switzerland.utf8    
## 
## time zone: Europe/Berlin
## tzcode source: internal
## 
## attached base packages:
## [1] grid      stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] gtable_0.3.4     ggbeeswarm_0.7.2 ggpmisc_0.5.4-1  ggpp_0.5.4      
##  [5] ggpubr_0.6.0     ggforce_0.4.1    ggplot2_3.4.3    ggthemes_4.2.4  
##  [9] rstatix_0.7.2    purrr_1.0.2      readr_2.1.4      stringr_1.5.0   
## [13] tidyr_1.3.0      dplyr_1.1.3      broom_1.0.5      lubridate_1.9.2 
## [17] readxl_1.4.3     magrittr_2.0.3   emmeans_1.8.8    multcomp_1.4-25 
## [21] TH.data_1.1-2    MASS_7.3-60      survival_3.5-5   mvtnorm_1.2-3   
## [25] lmerTest_3.1-3   lme4_1.1-34      Matrix_1.6-1     metacoder_0.3.6 
## [29] MESS_0.5.12     
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.2.0    vipor_0.4.5         farver_2.1.1       
##  [4] fastmap_1.1.1       tweenr_2.0.2        labelled_2.12.0    
##  [7] digest_0.6.33       estimability_1.4.1  timechange_0.2.0   
## [10] lifecycle_1.0.3     compiler_4.3.1      rlang_1.1.1        
## [13] sass_0.4.7          tools_4.3.1         utf8_1.2.3         
## [16] yaml_2.3.7          geeM_0.10.1         knitr_1.43         
## [19] ggsignif_0.6.4      labeling_0.4.3      ggformula_0.10.4   
## [22] ggstance_0.3.6      plyr_1.8.8          abind_1.4-5        
## [25] withr_2.5.0         numDeriv_2016.8-1.1 geepack_1.3.9      
## [28] polyclip_1.10-4     mosaicCore_0.9.2.1  fansi_1.0.4        
## [31] colorspace_2.1-0    scales_1.2.1        ggridges_0.5.4     
## [34] cli_3.6.1           crayon_1.5.2        rmarkdown_2.24     
## [37] generics_0.1.3      rstudioapi_0.15.0   tzdb_0.4.0         
## [40] polynom_1.4-1       minqa_1.2.5         cachem_1.0.8       
## [43] splines_4.3.1       cellranger_1.1.0    vctrs_0.6.3        
## [46] boot_1.3-28.1       sandwich_3.0-2      SparseM_1.81       
## [49] jsonlite_1.8.7      carData_3.0-5       car_3.1-2          
## [52] hms_1.1.3           beeswarm_0.4.0      clipr_0.8.0        
## [55] jquerylib_0.1.4     rematch_2.0.0       glue_1.6.2         
## [58] nloptr_2.0.3        codetools_0.2-19    stringi_1.7.12     
## [61] munsell_0.5.0       tibble_3.2.1        pillar_1.9.0       
## [64] quantreg_5.97       htmltools_0.5.6     R6_2.5.1           
## [67] evaluate_0.21       lattice_0.21-8      highr_0.10         
## [70] haven_2.5.3         backports_1.4.1     bslib_0.5.1        
## [73] MatrixModels_0.5-2  Rcpp_1.0.11         nlme_3.1-162       
## [76] mgcv_1.8-42         xfun_0.40           zoo_1.8-12         
## [79] forcats_1.0.0       pkgconfig_2.0.3